#include <iostream>
#include <string>
using namespace std;

class listNode {
    friend class MyStack;
private:
    listNode* next;
    int data;
public:
    listNode();
    listNode(int nodeData, listNode* succ = NULL);
};

class MyStack {
private:
    listNode* topNode;
public:
    MyStack();
    ~MyStack();
    bool push(const int&);
    bool pop(int&);
    bool getTop(int&);
    bool isEmpty() const { 
        return topNode == NULL;
    }
    void printStack();
};

class MyQueue {
private:
    int* queue;
    int capacity;
    int front;
    int rear;
public:
    MyQueue(const int&);
    MyQueue();
    ~MyQueue();
    bool enQueue(const int&);
    bool deQueue(int&);
    bool getFront(int&);
    void printQueue();
    bool isFull();
    bool isEmpty();
};

bool postfixExpression(const string&, string&);
bool expressionVal(const string&, int&);
void yanghui(const int&);